Hybris Sales UX API
GET Serviceability (TMF645)
Query Service Qualification is used to retrieve a list of service eligible in a given request provided by requester (via searchCriteria).
URL
https://[localhost]:[port]/ecom-sales-ux/v1/{businessId}/queryServiceQualificationURL Params
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| businessId | string | 2 letter ISO 3166 country code (PA) identifying the business unit. | Y |
Headers
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| client_id | string | The client_id identifying the channel. | Y |
| client_secret | string | Password associated with the client_id. | Y |
| X-Correlation-ID | string | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | Y |
| channelId | string | Defalut value : ECOM | C/M |
| lob | string | Defines line of business. Example: "FIXED" | N |
Query Params
| name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| offset | Integer | the starting point of the page to be searched (number of records to be skipped). | N(JM, PA, CR, PR,CL) |
| limit | Integer | Defines the number of records to be retrieved. | N(JM, PA, CR, PR,CL) |
| searchCriteria | Object | Value will be JSON object with URL encoding. All fields are optional in a JSON object. | Y(JM, PA, CR, PR,CL) |
Data Model - Response
| field name | type | description | required (mandatory-Y, optional-N, Not applicable- N/A) |
|---|---|---|---|
| id | string | Unique identifier of the serviceQualification resource | Y(CL),N/A(PA,CR,JM,PR) |
| instantSyncQualification | boolean | An indicator which when the value is "true" means that requester expects to get qualifcation result immediately in the response. If the indicator is true then the response code of 200 indicates the operation is successful otherwise a task is created with a response 201. | Y(PA,CR,JM,PR,CL) |
| queryServiceQualificationDate | datetime | Date when the serviceQualification was submitted | Y(PA,CR,JM,PR,CL) |
| searchCriteria | object | A ServiceQualificationItem relates to a specific service being checked in a qualification operation. | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service | object | A Service to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Service entity and not the RelatedServiceRefOrValue class itself | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service.place[] | array | A list of places (Place [*]). Used to define a place useful for the service (for example a geographical place whre the service is installed) | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service.place[].geographicLocationRefOrValue | object | A GeographicLocation allows describing through coordinate(s) a point, a line or a space | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service.place[].geographicLocationRefOrValue.'@type' | string | Indicates the type of the resource. | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service.place[].geographicLocationRefOrValue.geometry[] | array | usually latitude and longitude | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service.place[].geographicLocationRefOrValue.geometry[].x | string | x coordinate (usually latitude) | Y(PA,CR,JM,CL),N/A(PR) |
| searchCriteria.service.place[].geographicLocationRefOrValue.geometry[].y | string | y coordinate (usually longitude) | Y(PA,CR,JM,CL),N/A(PR) |
| serviceQualificationItem[] | array | A list of service qualification items. | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].id | string | Id of the Service Qualification Item | Y(PA,CR,JM,PR),N/A(CL) |
| serviceQualificationItem[].expectedServiceAvailabilityDate | datetime | Date when the requester looks for service availability | N(PA,CR,PR),N/A(CL,JM) |
| serviceQualificationItem[].category | object | The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories. | Y(PA,CR),N/A(CL,PR,JM) |
| serviceQualificationItem[].category.id | string | unique identifier | Y(PA,CR),N/A(CL,PR,JM) |
| serviceQualificationItem[].category.name | string | Name of the related entity. | Y(PA),N(CR),N/A(CL,PR,JM) |
| serviceQualificationItem[].category.'@referredType' | string | The actual type of the target instance when needed for disambiguation. | Y(PA),N(CR),N/A(CL,PR,JM) |
| serviceQualificationItem[].service | object | A Service to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Service entity and not the RelatedServiceRefOrValue class itself | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.isServiceEnabled | boolean | If FALSE and hasStarted is FALSE, this particular Service has NOT been enabled for use - if FALSE and hasStarted is TRUE then the service has failed | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.serviceType | string | Business type of the service | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.startDate | datetime | Date when the service starts | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.startMode | string | This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.feature[] | array | A list of feature associated with this service | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.feature[].name | string | This is the name for the feature. | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.feature[].featureCharacteristic[] | array | This is a list of Characteristics for a particular feature. | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.feature[].featureCharacteristic[].name | string | Name of the characteristic | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.feature[].featureCharacteristic[].value | any | Value of the characteristic | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.serviceCharacteristic[] | array | A list of characteristics that characterize this service (ServiceCharacteristic [*]) | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.serviceCharacteristic[].name | string | Name of the characteristic | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.serviceCharacteristic[].value | any | Value of the characteristic | Y(PA,CR,JM,PR,CL) |
| serviceQualificationItem[].service.place[] | array | A list of places (Place [*]). Used to define a place useful for the service (for example a geographical place where the service is installed) | Y(PA,PR,CL),N(JM),N/A(CR) |
| serviceQualificationItem[].service.place[].id | string | Unique identifier of the place | Y(PR,CL),N(JM,PA,CR) |
| serviceQualificationItem[].service.place[].name | string | Name of the place | N(JM),N/A(PA,CR,PR,CL) |
| serviceQualificationItem[].service.place[].streetName | string | Name of the street or other street type | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].postcode | string | Descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also known as zipcode) | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].locality | string | An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi-rural in nature. | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].city | string | City that the address is in | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].stateOrProvince | string | The State or Province that the address is in | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].country | string | Country that the address is in | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].@type | string | When sub-classing, this defines the sub-class Extensible name | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.place[].geographicLocationRefOrValue | object | A GeographicLocation allows describing through coordinate(s) a point, a line or a space | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.place[].geographicLocationRefOrValue.'@type' | string | Indicates the type of resource | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.place[].geographicLocationRefOrValue.geometry[] | array | usually latitude and longitude | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.place[].geographicLocationRefOrValue.geometry[].x | string | x coordinate (usually latitude) | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.place[].geographicLocationRefOrValue.geometry[].y | string | y coordinate (usually longitude) | Y(CL,PR),N/A(PA,CR,JM) |
| serviceQualificationItem[].service.place[].geographicSubAddress[] | array | It is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building. | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].geographicSubAddress[].id | string | Unique Identifier of the subAddress | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].geographicSubAddress[].type | string | Type of subAddress : it can be a subunit or a private street | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].geographicSubAddress[].name | string | Name of the subAddress to identify it with a meaningful identification | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].geographicSubAddress[].'@type' | string | Type of the resource for this subAdress | Y(CL),N/A(PA,CR,JM,PR) |
| serviceQualificationItem[].service.place[].GeographicAddress[] | array | search criteria payload for querying list of Addresses. | Y(PA),N/A(CL,CR,JM,PR) |
| serviceQualificationItem[].service.place[].GeographicAddress[].id | string | Unique Identifier of the Address | Y(PA),N/A(CL,CR,JM,PR) |
| serviceQualificationItem[].service.place[].GeographicAddress[].'@type' | string | When sub-classing, this defines the sub-class Extensible name | Y(PA),N/A(CL,CR,JM,PR) |
| serviceQualificationItem[].service.state | string | Valid values for the lifecycle state of the service. [ feasibilityChecked, designed, reserved, inactive, active, terminated ] | Y(PA,CR,JM,PR,CL) |
| state | string | Possible values for the state of a task [ accepted, terminatedWithError, inProgress, done ] | Y(PA,CR,JM,PR,CL) |
searchCriteria.service.place[] subResource - dataModel
| geographicLocationRefOrValue.@type | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| GeographicLocation | string | Geographic Location(latitude and longitude) | Y (PA,JM,CR,CL), N/A(PR) | { "geographicLocationRefOrValue": { "@type": "GeographicLocation", "geometry": [ { "x": "8.985186", "y": "79.508666" }]}} |
serviceQualificationItem[].service.feature[].featureCharacteristic[] subResource - dataModel
| name | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| priority | string | Commercial Priority | N (PA,JM,CR),N/A(CL,PR) | { "name": "priority", "value": "1" } |
| polygonId | string | Polygon ID | N(PA,JM,CR),N/A(CL,PR) | { "name": "polygonId", "value": 1275 } |
| name | string | Name | N(PA,JM,CR),N/A(CL,PR) | { "name": "name", "value": "SFG-037-001" } |
| msanId | string | Multi-Service Access Node (MSAN) Id | N(JM),N/A(CL,CR,PR,PA) | { "name": "msanId", "value": "WESX" } |
| addressClass | string | Location classs | N(PA,CR),N/A(JM,CL,PR) | { "name": "addressClass", "value": null } |
| netModeHfc | string | network mode for HFC | N(PA,JM,CR),N/A(CL,PR) | { "name": "netModeHfc", "value": null } |
| oltId | string | OLT ID | N(PA,CR),N/A(CL,PR,JM) | { "name": "oltId", "value": "PAN-PEN-LPT-PHM002" } |
| fatId | JM | the identifier for a FAT (Fiber Access Terminal) | N(PA,JM,CR),N/A(CL,PR) | { "name": "fatId", "value": "" } |
| globalId | string | Global Id | N(PA,JM,CR),N/A(CL,PR) | { "name": "globalId", "value": "{1D0A81BB-09AF-4B16-8336-781159DA8750}" } |
| shapeLength | string | Length of shape | N(PA,JM,CR),N/A(CL,PR) | { "name": "shapeLength", "value": 0.007319597029758025 } |
| folderpath | string | folder path | N(PA,CR),N/A(CL,PR,JM) | { "name": "folderpath", "value": "" } |
| FDH | string | Fiber Distribution Hub aka Cabinet | N(PA,CR),N/A(CL,PR,JM) | { "name": "FDH", "value": "SFG-037" } |
| FDP | string | Fiber Distribution Point, aka NAP, aka Terminal | N(PA,JM,CR),N/A(CL,PR) | { "name": "FDP", "value": "26560} |
| HUB | string | networking device | N(PA,JM,CR),N/A(CL,PR) | { "name": "HUB", "value": " " } |
| segmento | string | Customer segment | N(PA),N/A(CL,CR,PR,JM) | { "name": "segmento", "value": " " } |
| project | string | project | N(PA),N/A(CL,CR,PR,JM) | { "name": "project", "value": " " } |
| building_n | string | building network | N(PA),N/A(CL,CR,PR,JM) | { "name": "building_n", "value": " " } |
| distribuci | string | Distribution Network | N(PA),N/A(CL,CR,PR,JM) | { "name": "distribuci", "value": " " } |
| tipo | string | type | N(PA),N/A(CL,CR,PR,JM) | { "name": "tipo", "value": " " } |
| centralTelefonica | string | Telephone Exchange | N(PA),N/A(CL,CR,PR,JM) | { "name": "centralTelefonica", "value": "SFG" } |
| feat_type | string | feature type | Y(PA),N/A(CL,CR,PR,JM) | { "name": "feat_type", "value": "Address" } |
| node_status | string | state of a network node | N(JM),N/A(CL,CR,PR,PA) | { "name": "node_status", "value": "E" } |
| cab_combo | string | Cabinet Combination | N(JM),N/A(CL,CR,PR,PA) | { "name": "cab_combo", "value": "WSGFDH78" } |
| node | string | Cluster of contiguous home passed | N(PA,CR,JM,CL),N/A(PR) | { "name": "node", "value": "JM-00-209" } |
| returnType | string | mode of transmission | N(CL),N/A(JM,CR,PR,PA) | { "name": "returnType", "value": "FULLDUPLEX" } |
| subNode | string | Logical division of Node, e.g: 4 subnodes per node | N(CL),N/A(JM,CR,PR,PA) | { "name": "subNode", "value": "1" } |
| napId | string | identifier for a NAP(Network Access Point) | N(CL),N/A(JM,CR,PR,PA) | { "name": "napId", "value": "OVAL-025-001" } |
| napLocation | string | location of a NAP(Network Access Point) | N(CL),N/A(JM,CR,PR,PA) | { "name": "napLocation", "value": "XXXX" } |
serviceQualificationItem[].service.feature[] subResource - dataModel
| name | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| TV | string | Television | N(PR),N/A(JM,CR,CL,PA) | { "name": "TV", "featureCharacteristic": [ { "name": "Status", "value": "NEVER" }]} |
| INTERNET | string | Internet | N(PR),N/A(JM,CR,CL,PA) | { "name": "INTERNET", "featureCharacteristic": [ { "name": "Status", "value": "NEVER" }]} |
| VOICE | string | Voice | N(PR),N/A(JM,CR,CL,PA) | { "name": "VOICE", "featureCharacteristic": [ { "name": "Status", "value": "NEVER" }]} |
| 1GB_offer | string | data offer | N(PR),N/A(JM,CR,CL,PA) | { "name": "1GB_offer", "featureCharacteristic": [ { "name": "Status", "value": "" } ]} |
serviceQualificationItem[].service.serviceCharacteristic[] subResource - dataModel
| name | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| tvType | string | TV Technology Type | N(PA,JM,CR),N/A(CL,PR) | { "name": "tvType", "value": "IPTV" } |
| voiceType | string | Voice Technology Type | N(PA,JM,CR),N/A(CL,PR) | { "name": "voiceType", "value": "TOIP" } |
| broadBandType | string | Broadband Technology Type | N(PA,JM,CR),N/A(CL,PR) | { "name": "broadBandType", "value": "GPON" } |
| bbMaxUploadSpeed | string | Upload Speed for Internet | N(PA,JM,CR),N/A(CL,PR) | { "name": "bbMaxUploadSpeed", "value": 1000 } |
| bbMaxDownLoadSpeed | string | Download Speed for Internet | N(PA,JM,CR),N/A(CL,PR) | { "name": "bbMaxDownLoadSpeed", "value": 1000 } |
| commercialStatus | string | Commercial Status | N(CL),N/A(JM,CR,PR,PA) | { "name": "commercialStatus", "value": "Y" } |
| addressStatus | string | Address Status | N(CL),N/A(JM,CR,PR,PA) | { "name": "addressStatus", "value": "ACTIVE" } |
| isNodeCapacityFull | string | Node is to serve any new address | N(CL),N/A(JM,CR,PR,PA) | { "name": "isNodeCapacityFull", "value": "N" } |
| networMode | string | Mode of network | N(CL),N/A(JM,CR,PR,PA) | { "name": "networMode", "value": "FUDIG" } |
| isRedZone | string | Red Zone | N(CL),N/A(JM,CR,PR,PA) | { "name": "isRedZone", "value": "Y" } |
| frequency | string | frequency | N(CL),N/A(JM,CR,PR,PA) | { "name": "frequency", "value": "GPON" } |
| technicianAvailabilityBucket | string | Technician Availability Bucket | N(CL),N/A(JM,CR,PR,PA) | { "name": "technicianAvailabilityBucket", "value": "xxxx" } |
| existingServiceName | string | Existing Service Name | N(CL),N/A(JM,CR,PR,PA) | { "name": "existingServiceName", "value": "SISE" } |
| isUpfrontPaymentReq | string | upfront payment | N(CL),N/A(JM,CR,PR,PA) | { "name": "isUpfrontPaymentReq", "value": "N" } |
| socioEconomicGroup | string | social and economic Group | N(CL),N/A(JM,CR,PR,PA) | { "name": "socioEconomicGroup", "value": "xxxx" } |
| offerCode | string | offer Code | N(CL),N/A(JM,CR,PR,PA) | { "name": "offerCode", "valueType": "string", "value": "xxxx" } |
| networkSegment | string | Network Segment | N(CL),N/A(JM,CR,PR,PA) | { "name": "networkSegment", "valueType": "string", "value": "xxxx" } |
| subtelCommuneCode | string | Subtel commune code | N(CL),N/A(JM,CR,PR,PA) | { "name": "subtelCommuneCode", "valueType": "string", "value": "xxxx" } |
| codigoLocSubtel | string | location code assigned by Subtel | N(CL),N/A(JM,CR,PR,PA) | { "name": "codigoLocSubtel", "valueType": "string", "value": "xxxx" } |
| NetworkType | string | Network Type | N(PR),N/A(JM,CR,CL,PA) | { "name": "NetworkType", "value": "FIBER" } |
| InternetSource | string | Source of Internet | N(PR),N/A(JM,CR,CL,PA) | { "name": "InternetSource", "value": "U" } |
| PoleNumber | string | Pole Number | N(PR),N/A(JM,CR,CL,PA) | { "name": "PoleNumber", "value": "" } |
| VertexCode | string | Vertex Code | N(PR),N/A(JM,CR,CL,PA) | { "name": "VertexCode", "value": "" } |
| BusinessUnit | string | Business Unit | N(PR),N/A(JM,CR,CL,PA) | { "name": "BusinessUnit", "value": "" } |
serviceQualificationItem[].service.place[].GeographicAddress[]
| @type | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| GeographicAddress | string | Geographic Address | Y(PA),N/A(CL,PR,CR,JM) | { "id": "PA-17PPK6394593612", "@type": "GeographicAddress" } |
serviceQualificationItem[].service.place[]
| geographicLocationRefOrValue.geometry[].@type | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| GeographicLocation | string | Geographic Location(latitude and longitude) | N(CL,PR),N/A(CR,JM,PA) | { "geometry": [ { "x": "18.992534", "y": "66.268446" }], "@type": "GeographicLocation" } |
serviceQualificationItem[].service.place[].geographicSubAddress[]
| name | type | description | required(mandatory-Y, optional-N, Not applicable- N/A) | examples |
|---|---|---|---|---|
| SUR AUSTRAL | string | Name of territory | N(CL),N/A(CR,JM,PR,PA) | { "id": "TE12", "type": "territory", "name": "SUR AUSTRAL", "@type": "GeographicSubAddress" } |
| Zona Sur | string | Name of zone | N(CL),N/A(CR,JM,PR,PA) | { "id": "Zona Sur", "type": "zone", "name": "Zona Sur", "@type": "GeographicSubAddress" } |
Key Consideration:
- Please refer the examples from the following URL - ecom-sales-ux - GET queryServiceQualification
This API is available for all five BUs (JM, PA, CR, PR,CL ). Below are the common key points:
- API expects the below-mentioned query parametersoffset, limit, searchCriteria
Example for queryParam searchCriteria object,
{ "id": "9090", "streetNr": "225", "streetName": "Strathmore", "postcode": "5004", "locality": "Brighton", "city": "Brighton", "stateOrProvince": "SA", "country": "Australia", "latitude": "1.430937", "longitude": "43.597208" }- SouthBound Systems For Jamaica, Panama and Costa Rica, ArcGIS is providing serviceability information. For LCPR, Marvin DB is providing serviceability information. For Chile, Siebel is providing serviceability information.
- In response, field “serviceQualificationItem/service/feature/featureCharacteristic/name” represents access technology type like (FTTX, HFC, CU).
For Jamaica
- For Jamaica, only latitude and longitude are expected from the front end. Mule API will throw an error if these details are missing.
searchCriteria = {
"latitude": "10.03",
"longitude":"84.04"}
URL encoded: searchCriteria= %7B%0A%09%22latitude%22%3A%20%2210.03%22%2C%0A%09%22longitude%22%3A%2284.04%22%0A%7D%0A
- Service qualification response may have multiple service qualification items (serviceQualificationItem[]) based on polygons returned by ArcGIS (sorted by access technology priority (FTTX, HFC, CU) and address class priority).
- In HFC, network mode can be FUDIG, ANDIG and ANALO.
- In response, field “serviceQualificationItem/service/feature/featureCharacteristic/name =” priority” represents priority of polygon.FTTX = priority 1
HFC = priority 2
Copper/CU = priority 3
- As we are not getting commercial status, plant capacity and return type(Full-duplex and half-duplex), we are assuming that
a. All addresses are commercially available.
b. Node has capacity available to serve location.
c. VOD (video on demand) may not be available for some locations, but we will not be able to tell customers as this info does not exist in GIS in Jamaica.
- In response, if all serviceQualificationItem have the same priority polygons with the same address class, priority will be given to the polygon that appears at the first index in the array.
- In response, if serviceQualificationItem[] is an empty array means no polygon coverage for requested longitude and latitude hence no serviceability.
- In response, if “serviceQualificationItem/service/feature/featureCharacteristic[x]/name” =”node_status” and “serviceQualificationItem/service/feature/featureCharacteristic[x]/value”=”E” location is serviceable. If “value” is “P” or “U”, location i s not serviceable.
- If response has only one serviceability object with priority 3 and serviceQualificationItem/service/feature/featureCharacteristic/name = CU then location is not serviceable.
- If response has only one serviceability object with serviceQualificationItem/service/feature/featureCharacteristic/name =HFC and serviceQualificationItem/service/feature/featureCharacteristic[x]/name = "netModeHfc" and value = "ANALO" then location is not serviceable.
For Panama
For Panama, only latitude and longitude are expected from the front end. Mule API will throw an error if these details are missing.
searchCriteria =
{ "latitude": "10.03", "longitude":"84.04" }URL encoded: searchCriteria= %7B%0A%09%22latitude%22%3A%20%2210.03%22%2C%0A%09%22longitude%22%3A%2284.04%22%0A%7D%0A
- Service qualification response may have multiple service qualification items (serviceQualificationItem[]) based on polygons returned by ArcGIS (sorted by access technology priority (FTTX, HFC).
- In HFC, network mode is FUDIG only for Panama.
- As we are not getting commercial status, plant capacity and return type(Full-duplex and half-duplex), we are assuming that a. All addresses are commercially available. b. Node has capacity available to serve location. c. VOD (video on demand) may not be available for some locations, but we will not be able to tell customers as this info does not exist in GIS.
- In response, if all serviceQualificationItem have the same priority polygons, priority will be given to the polygon that appears at the first index in the array.
- In response, if serviceQualificationItem[] is an empty array means no polygon coverage for requested longitude and latitude hence no serviceability.
- In response, when serviceQualificationItem[].service.serviceCharacteristic[].name = feat_type, the value will be service for serviceability and address for addressability.
- For addressability, the OneID retrieved from ArcGIS is mapped to serviceQualificationItem[].service.place[].GeographicAddress[].id. If the OneID is not available, the API returns an empty string for OneID field.
- For addressability enhancement, the date-format is updated to include offset (example: 2026-01-06T16:22:54.210-05:00).
For CostaRica
- In Costa Rica, the ArcGIS system expects Latitude and Longitude value for serviceability. API will throw an error if Lat and Long are missing in the request.
searchCriteria = {
"latitude": "10.03",
"longitude":"84.04"}
URL encoded: searchCriteria= %7B%0A%09%22latitude%22%3A%20%2210.03%22%2C%0A%09%22longitude%22%3A%2284.04%22%0A%7D%0A
- Service qualification response may have multiple service qualification items (serviceQualificationItem[]) based on polygons returned by ArcGIS (sorted by access technology priority (FTTH, HFC) and address class priority).
- In response, field “serviceQualificationItem/service/feature/featureCharacteristic/name” represents access technology type FTTH or HFC.
- In response, field “serviceQualificationItem/service/feature/featureCharacteristic/name =” priority” represents priority of polygon. • Fiber – priority 1• HFC (address class =” Metro”) - priority 2• HFC (address class =” Rural”) - priority 3
- In response, field “serviceQualificationItem/service/feature/featureCharacteristic/name =” addressClass” represents the below mentioned polygon address class. • Metro• Rural
- In response, if all serviceQualificationItem have the same priority polygons with the same address class, priority will be given to the polygon that appears at the first index in the array.
- In response, if all serviceQualificationItem objects have the same priority (overlapping HFC polygons), but the address class has a different value (Metro or Rural ), then priority will be based on the address class.
- In response, if serviceQualificationItem[] is an empty array means no polygon coverage for requested longitude and latitude hence no serviceability.
For Chile
- For Chile, the searchCriteria query param value will be JSON object with URL encoding#Example:
searchCriteria= { "latitude": "10.03", "longitude":"84.04"}
URL encoded: %7B%0A%09%22latitude%22%3A%20%2210.03%22%2C%0A%09%22longitude%22%3A%2284.04%22%0A%7D%0ANote:
In case of missing query param or longitude and latitude or Id, API will throw an error.
The MuleSoft API response will have a maximum number of 100 queryServiceQualification objects, sorted by GIS_ID (place.id) for requested latitude and longitude values. 100 records restriction is from the Siebel side and is configurable.
In BSS, there may be more than 100 records corresponding to the requested latitude and longitude value. For getting the rest of the available records, the front end needs to set the offset value as 101 and hit the API again with the same payload. If the total number of records is less than 100 means no more records are available in BSS.For example, if Siebel finds 120 records for requested latitude and longitude for the first get call (Initial offset value is 1), the API will return the first 100 queryServiceQualification objects.
- If the offset is 21, the API will return the last 100 records.
- If the offset 11, the API will return the records from 11th to 110.- Custom response header “x-result-count” returns the number of items returned in the response body. It can be used to set offset value for iterative API call.
- If no offset is sent by the front end, then the default Offset value is 1.
- In the API response, the field “serviceQualificationItem.service.place.id” returns GIS House ID for the house. House id is mandatory for customer registration..
- In API response, field serviceQualificationItem/service/serviceType represents the services available for installation. If serviceType=” null” means no service available on a given address hence no serviceability. Other possible values are,

Please Note:
. Voice –No standalone Voice sell in Ecomm (almost zero sales so out of scope).
Internet – No standalone internet sell in Ecomm.
if the location has 3PLAY customer can have any combination for 2PLAY or 1PLAY.
- In response, field “serviceQualificationItem.service.feature.name” returns Network type/technology type: FTTH or HFC and is required for serviceability decision.
- In response, field serviceQualificationItem.service. feature. feature Characteristic. name =”returnType” represents the mode of transmission. This field needs to be considered if feature.name=HFC. This field doesn’t impact serviceability but impacts user experience.
- If returnType value =”FULLDUPLEX”, the customer can enjoy VOD (video on demand). VOD is free of charge and included for free for all customers those lives in a place where the network is a fullduplex.
- If returnType value =”HALFDUPLEX”, the customer can not enjoy VOD (video on demand).
- In API response if field “serviceQualificationItem.service.serviceCharacteristic.name =” comercialStatus” and value = “N” It means no serviceability.
- In the API response, if the field “serviceQualificationItem.service.serviceCharacteristic.name =”addressStatus” and value = “INACTIVE” means the address is invalid hence no serviceability..
- In the API response, if field serviceQualificationItem.service.serviceCharacteristic.name ="isNodeCapacityFull" and Value =” Y” then it means Node is not able to serve any new address hence no serviceability.
- In the API response, if field serviceQualificationItem.service.feature.name = “HFC” and serviceQualificationItem.service.serviceCharacteristic.name="networkMode" and Value = “ANALO” Or “ANPRE” OR “SINRE” then as per business there will be no TV offer available in hybris for customer hence no serviceability and customer must be redirected to “Click to Call”This rule is not applicable to FTTH.
- Please find below table for Serviceability summery

For Puerto Rico
- In Puerto Rico, the local Marvin DB (copy of CSG DB) system expects a unique House ID to provide Services available on that specific house. API will throw an error if House ID is missing in the request.
Example:
searchCriteria = {"id": "662423423"}
The value will be JSON object with URL encoding.
- Service availability response may have multiple service available items based on Local Marvin DB and sorted by access technology like TV/VOICE/INTERNET/1GB_OFFER.
- As Puerto Rico eCom's requirement is to check only 4 services on an address, API will return the status of the services.
- Technology details, ‘FTTH or COAX’ has been added in response and eCom can consider it if there is any requirement, while these are not available in Marvin DB in all the records.
- attribute "startMode" will define about the location is self install or not and possiable values of "startMode" are 1) selfInstallEnabled - Location eligable to self install2) selfInstallDisabled - Location not-eligable to self install3) unknown - location would be new or techinicain not visited.